<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php学习笔记[055]</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="show"><span>055 PHP5中使用PDO连接数据库</span></div>
<?php include 'include/top.php';?>
<div class="text">
<b>PDO  简介 和 配置</b>
<strong>PDO</strong>(PHP Data Object) 是PHP 5 中加入的东西，是PHP 5新加入的一个重大功能，因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理，什么 <strong>php_mysql.dll</strong>、<strong>php_pgsql.dll</strong>、<strong>php_mssql.dll</strong>、<strong>php_sqlite.dll</strong>等等PHP6中也将默认使用PDO的方式连接，mysql扩展将被作为辅助<br />
<b>配置php.ini文件</b>选择需要启用的PDO去除前面的#<br />
extension=php_pdo.dll<br />
extension=php_pdo_mysql.dll<br />
extension=php_pdo_pgsql.dll<br />
extension=php_pdo_sqlite.dll<br />
extension=php_pdo_mssql.dll<br />
extension=php_pdo_odbc.dll<br />
extension=php_pdo_firebird.dll<br />
</div>
<div class="text">
<b>PDO连接数据库</b>
<strong>new PDO("mysql:host=localhost;dbname=php100","root", "");</strong>//mysql(数据库类型)，host(服务器地址)，dbname(数据库名)，root(用户名)，密码<br />
然而pdo默认不是长连接，如果需要数据库长连接，需要最后加一个参数：<strong>array(PDO::ATTR_PERSISTENT => true) </strong><br />
我们来看演示：
<div class="code">&lt;?php<br />
  $pdo= new PDO(&quot;mysql:host=localhost;dbname=study&quot;,'root','',array(PDO::ATTR_PERSISTENT =&gt; true))<br />
  ?&gt;</div>
 下面是连接的效果
<div class="effect">
<?php
$pdo= new PDO("mysql:host=localhost;dbname=zt",'zt_f','yl11fc0',array(PDO::ATTR_PERSISTENT => true))
?>
</div>
</div>
<div class="text">
<b>PDO 常用方法及其使用</b>
PDO::query() 主要是用于有记录结果返回的操作，特别是SELECT操作<br />
PDO::exec() 主要是针对没有结果集合返回的操作，如INSERT、UPDATE等操作<br />
PDO::lastInsertId() 返回上次插入操作，主键列类型是自增的最后的自增ID<br />
PDOStatement::fetch() 是用来获取一条记录  <br />
PDOStatement::fetchAll() 是获取所有记录集到一个中<br />
我们来看演示的范例：<br />
<div class="code">
&lt;?php<br />
$sql=&quot;select * from `mvc_s044` where 1&quot;;<br />
$pdo-&gt;exec(&quot;set names 'utf8'&quot;);<br />
$query=$pdo-&gt;query($sql);<br />
$rs=$query-&gt;fetch();<br />
print_r($rs);<br />
echo '&lt;br /&gt;';<br />
$rs2=$query-&gt;fetchAll();<br />
print_r($rs2);<br />
?&gt;</div>
我们来看它运行的效果:
<div class="effect">
<?php
$sql="select * from `test` where 1";
$pdo->exec("set names 'gbk'");
$query=$pdo->query($sql);
$rs=$query->fetch();
print_r($rs);
echo '<br />';
$rs2=$query->fetchAll();
print_r($rs2);
?>
</div>  
</div>



</body>
</html>
